Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

182
Visualizações
Pregunta de JavaScript: ¿hay alguna forma de asignar un objeto a "esta" palabra clave sin utilizar los métodos de llamada, aplicación y vinculación?

Estoy tratando de crear un polyfill para los métodos de llamada, aplicación y vinculación.

 const user = { firstName: "Christopher", lastName: "Nolan", }; const fullName = function (place, country) { console.log( `${this.firstName} ${this.lastName} is from ${place}, ${country}.` ); };

// Usando un método de llamada

 fullName.call(user, "London", "UK");

// Volver a crear un método de llamada con el nombre de "_call"

 Function.prototype._call = function (...args) { const funcObj = this; const params = args.slice(1); return (function () { const obj = args[0]; // How can I point out the obj to "this" keyword inside a funcObj without using the bind method as I mentioned below. return funcObj.bind(obj, ...params)(); })(); }; fullName._call(user, "London", "UK");
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Sí. Solo usa

 var myObject = this;

Entiendo el problema que puedes tener. A veces, cuando desea utilizar el objeto 'esto', el contexto de 'esto' ha cambiado. Algunas personas usan

 var that = this;

Aquí hay más lectura para usted que va un poco más profundo.

https://dbwriteups.wordpress.com/2017/04/08/que-eso-significa-en-javascript/

about 4 years ago · Juan Pablo Isaza Relatório

0

No estoy seguro de que sea una gran implementación, pero podría aprovechar el hecho de que, para un método de objeto, el alcance se establece automáticamente en el objeto sobre el que se invocó.

Con eso en mente, podría crear un objeto usando el alcance como prototipo y agregar la función original como método, luego invocar el método.

 const user = { firstName: "Christopher", lastName: "Nolan", }; const fullName = function (place, country) { console.log( `${this.firstName} ${this.lastName} is from ${place}, ${country}.` ); }; Function.prototype._call = function (scope, ...args) { // symbol for the method name to avoid name collisions const symbol = Symbol(); // create a new object from scope with the original function (this) as a method const temp = Object.create(scope, {[symbol]: { value: this }}); // inside the method "this" will point to "temp" which is (effectively) "scope" return temp[symbol](...args); } fullName._call(user, 'London', 'UK');

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda